Nonvolatile memory manufacturers such as manufacturers of NAND flash memory devices typically specify a fixed program step voltage that is used for programming of cells of NAND flash memory devices that they manufacture and the program step voltage does not change during the lifetime of the NAND flash memory device. Memory controllers couple to NAND flash memory devices and control the operation of the NAND flash memory devices for storing data on the NAND flash memory devices and reading data from the NAND flash memory devices.
For devices such as Solid State Drives (SSD's) it is important to constantly improve data storage time and data read time to have the best possible SSD specifications. As the number of bits in each NAND memory cell has increased the threshold voltage window of the programming operation has become more limited. In Triple Level Cell (TLC) NAND flash memory devices eight voltage distributions are required to store three bits of information. To achieve the limited threshold voltage window NAND manufacturers typically use a fixed program step voltage that is relatively low, requiring numerous programming pulses to perform each program operation. This has a negative effect on programming time and therefore negatively affects the throughput and Input/Output Operations Per Second (IOPS) of the SSD.
In addition, the numerous programming pulses negatively affect the raw Bit Error Rate (BER) of the NAND flash memory devices, reducing the life span of the NAND flash memory devices. This correspondingly decreases the lifespan of the SSD.
Accordingly there is a need for a method and apparatus that will extend the life span of NAND flash memory devices and that will reduce program time.